Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement org-based write permissions in frontend #441

Merged
merged 3 commits into from
Sep 27, 2022

Conversation

florimondmanca
Copy link
Collaborator

@florimondmanca florimondmanca commented Sep 21, 2022

Refs #388

Cette PR implémente des changements pour tenir compte des droits de chaque utilisateur vis-à-vis des catalogues:

  • Cacher le bouton "Contribuer" si l'organisation de l'utilisateur n'a pas de catalogue.
  • Cacher le bouton "Modifier" sur une fiche si l'utilisateur fait partie d'une organisation différente de celle du jeu de données.

Je peux éventuellement couper ça en 2.

(Les PRs côté backend ne feront que "verrouiller" ces comportements côté backend, mais on n'en a pas besoin pour adapter l'UI dès à présent.)

TODO

  • Cacher "Contribuer" si l'organisation de l'utilisateur n'a pas de catalogue
  • Cacher "Modifier" si l'utilisateur ne fait pas partie de l'organisation de la fiche
  • Vérifier mise à jour de ces affichags si on change de compte utilisateur (avec/sans catalogue)
  • Tests unitaires
  • Tests E2E

Pour tester

En local :

  • Se connecter avec catalogue.demo@yopmail.com / password1234 (orga "MC")
  • Constater que le bouton "Contribuer" est présent, que l'on peut modifier les jeux de données (car ils sont dans l'orga MC)
  • Se déconnecter, puis se connecter avec catalogue.demo2@yopmail.com / password1234 (orga "Ministère santé", n'a pas de catalogue)
  • Constater qu'il n'y a pas de bouton "Contribuer", et qu'on ne peut pas modifier les jeux de données de l'orga MC
  • Se connecter avec admin.sante@catalogue.data.gouv.fr / admin (mettre à jour TOOLS_PASSWORDS dans son .env et relancer make initdata)
  • Constater que l'on peut toujours modifier les jeux de données même s'ils ne sont pas de notre orga. (Est-ce que c'est souhaitable ?)

@florimondmanca florimondmanca force-pushed the fm/dataset-perms-rest branch 3 times, most recently from 61c83fe to 2be74d0 Compare September 22, 2022 16:30
]
: []),
];
});
Copy link
Collaborator Author

@florimondmanca florimondmanca Sep 22, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Cette partie mérite attention

Dans ce fichier, je rends les navigationItems réactifs par rapport au catalogue de l'utilisateur courant.

En effet, quand on se connecte avec un utilisateur dont l'organisation n'a pas de catalogue, le navItem "Contribuer" ne doit pas être visible.

Le besoin d'un debounce() me déçoit un peu (ce n'est pas la faute du refresh() : j'ai essayé de le commenter et sans debounce j'avais 2 requêtes identiques qui se lançaient), j'ai laissé un XXX pour l'instant.

Comment on lines -33 to -40
projects: [
{
name: "default",
use: {
adminTestPassword: getAdminTestPassword(),
},
},
],
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'en ai profité pour simplifier cette utilisation de projects en définissant directement une constante ADMIN_PASSWORD, comme pour le reste.

À l'époque, je crois que j'avais fait ça parce qu'on ne pouvait pas vraiment importer du code dans les fichiers dans tests/e2e. Avec la dernière version de Playwright ça passe crème.

@florimondmanca florimondmanca added the please review Cette PR est en attente d'une revue label Sep 26, 2022
getCatalogBySiret({
fetch,
apiToken,
siret: dataset.catalogRecord.organization.siret,
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ici il y avait un bug : on récupérait le SIRET de l'utilisateur courant, mais en fait dans le contexte de l'édition d'un dataset, c'est le catalogue du jeu de données qui nous intéresse !

@florimondmanca florimondmanca force-pushed the fm/dataset-perms-rest branch 2 times, most recently from 026220e to e27a409 Compare September 26, 2022 16:47
@florimondmanca florimondmanca removed the please review Cette PR est en attente d'une revue label Sep 27, 2022
@florimondmanca florimondmanca merged commit b805c1c into master Sep 27, 2022
@florimondmanca florimondmanca deleted the fm/dataset-perms-rest branch September 27, 2022 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants